const db = wx.cloud.database()
const sid = wx.getStorageSync('id')
let message = {}
const zhuangtai = ["立即收藏", "已收藏"]
const color = ["#ccc", "#bb0404"]
var app = getApp()
let id = ""
let num = 0
let commentlist=[]
let commentlist2=[]
Page({

  /**
   * 页面的初始数据
   */
  data: {
    detail:"",
    text1: "立即收藏",
    baoming: false,
    stdms: {},
    show: false,
    showModalStatus: false,
    text: "立即报名",
    state: "#bb0404",
    name:"",
    age:"",
    idcard:"",
    phone:"",
    beizhu:"",
    //评论数据
    comment_list:[],
    //回复数据
    comment_list2:[],
    /*定义一些数据*/
    focus: false, //输入框是否聚焦
    placeholder: '说点什么...', //底部输入框占字符
    // placeholder2: '说点什么，让ta也认识看笔记的你', //顶部输入框占字符
    // value: null, //顶部输入框内容
    comment_text: null, //底部评论框内容

    /*
     *以下初始化数据是用户点击任意一条评论或回复时需要设置的数据
     *然后将设置好的数据传递给评论时新创建的评论数据对象
     */
    now_reply_name: null, //当前点击的评论或回复评论的用户昵称
    now_reply_type: 0, //当前回复类型 默认为0 1为回复评论 2为回复回复
    now_parent_id: 0, //当前点击的评论或回复评论的所属评论id
    now_reply: 0, //当前点击的评论或回复评论的id
    // console.log('2.获取当前用户信息'),
    //模拟用户信息
    
      nickName: '', //用户昵称
      avatarUrl: '', //用户头像
  },
  //点击用户评论或回复时触发
  replyComment(e) {
    var cid = e.currentTarget.dataset.cid; //当前点击的评论id
    var name = e.currentTarget.dataset.name; //当前点击的评论昵称
    var pid = e.currentTarget.dataset.pid; //当前点击的评论所属评论id
    var type = e.currentTarget.dataset.type; //当前回复类型
    this.setData({
      focus: true, //输入框获取焦点
      placeholder: '回复' + name + '：', //更改底部输入框占字符
      now_reply: cid, //当前点击的评论或回复评论id
      now_reply_name: name, //当前点击的评论或回复评论的用户名
      now_parent_id: pid, //当前点击的评论或回复评论所属id
      now_reply_type: type, //获取类型(1回复评论/2回复-回复评论)
    })
  },
  getpinglun(){
    db.collection
  },
  // 评论提交数据
  commit_data: function (comment_data) {
    console.log(comment_data);
    this.data.comment_list.push(comment_data)
    this.setData({
      comment_list,
    })
  },
  confirm1(e) {
    var comment_text = e.detail.value;
    this.setData({
      valuepin: comment_text
    })
  },
  name(e){
    console.log(e);
    this.setData({
      name:e.detail.value
    })
  },
  age(e){
    this.setData({
      age:e.detail.value
    })
  },
  idcard(e){
    this.setData({
      idcard:e.detail.value
    })
  },
  phone(e){
    this.setData({
      phone:e.detail.value
    })
  },
  beizhu(e){
    this.setData({
      beizhu:e.detail.value
    })
  },
  //底部输入框提交内容时触发
  confirm(e) {
    //获取输入框输入的内容
    var comment_text = this.data.valuepin;
    //判断用户是否输入内容为空
    if (comment_text == '') {
      //用户评论输入内容为空时弹出
      wx.showToast({
        title: '请输入内容', //提示内容
        icon: 'none' //提示图标
      })
    } else {
      var date = new Date(); //创建时间对象
      var year = date.getFullYear(); //获取年      
      var month = date.getMonth() + 1; //获取月      
      var day = date.getDate(); //获取日      
      var hour = date.getHours(); //获取时      
      var minute = date.getMinutes(); //获取分      
      var second = date.getSeconds(); //获取秒      
      var time = `${year}年${month}月${day}日${hour}时${minute}分${second}秒`; //当前时间
      var comment_list = this.data.detail.comment_list; //获评论数据
      var comment_list_length = comment_list.length; //获取当前评论数组的长度
      if (comment_list_length > 0) {
        var last_id = comment_list[comment_list_length - 1].comment_id; //获取最后一个评论的id
      } else {
        var last_id = 0
      }
      var comment_list2 = this.data.detail.comment_list2; //获取回复数据
      var comment_list2_length = comment_list2.length; //获取回复数组的长度
      // 判断数组是否为空,
      if (comment_list2_length > 0) {
        var last_id2 = comment_list2[comment_list2_length - 1].comment_id; //获取最后回复的id
      } else {
        var last_id2 = 0
      }



      var new_id = last_id > last_id2 ? last_id + 1 : last_id2 + 1; //当前将要发表的评论的id

      // var userinfo = this.data.userinfo; //获取当前的用户信息      
      var comment_user_name = this.data.nickName //用户昵称      
      var comment_user_avatar = this.data.avatarUrl //用户头像
      var reply_name = null; //回复评论用户的昵称
      var parent_id = 0; //评论所属哪个评论的id
      var reply_id = this.data.now_reply; //回复谁的评论id
      //通过回复谁的评论id判断现在是评论还是回复
      if (reply_id != 0) {
        //现在是回复
        var reply_type = this.data.now_reply_type; //回复类型
        //通过回复类型判断是回复评论还是回复回复
        if (reply_type == 1) {
          //回复评论
          parent_id = this.data.now_reply; //回复评论所属评论id
          reply_name = this.data.now_reply_name; //回复评论用户昵称
        } else {
          //回复回复
          parent_id = this.data.now_parent_id; //回复评论所属评论id
          reply_name = this.data.now_reply_name; //回复评论用户昵称
        }
      } else {
        //现在是评论
      }
      var comment_detail = {} //评论/回复对象
      comment_detail.comment_id = new_id; //评论Id      
      comment_detail.comment_user_name = this.data.nickName; //用户昵称      
      comment_detail.comment_user_avatar = this.data.avatarUrl; //用户头像      
      comment_detail.comment_text = comment_text; //评论内容      
      comment_detail.comment_time = time; //评论时间      
      comment_detail.reply_id = reply_id; //回复谁的评论的id      
      comment_detail.parent_id = parent_id; //评论所属哪个评论id      
      comment_detail.reply_name = reply_name; //回复评论人的昵称
      //判断parent_id是否为0 为0就是评论 不为0就是回复
      if (comment_detail.parent_id > 0) {
        //回复
       commentlist2.unshift(comment_detail);
      
        //toto 发送数据到后端 
        console.log(comment_detail)
       
      } else {
        //评论
        commentlist.unshift(comment_detail);
        //toto 发送数据到后端 
        console.log(comment_detail)
        // this.commit_data(comment_list)
      }
      //动态渲染
      this.setData({
        //发表评论后将以下数据初始化 为下次发表评论做准备
        comment_text: null, //评论内容        
        now_reply: 0, //当前点击的评论id        
        now_reply_name: null, //当前点击的评论的用户昵称        
        now_reply_type: 0, //评论类型        
        now_parent_id: 0, //当前点击的评论所属哪个评论id        
        placeholder: "说点什么...", //输入框占字符
        //将加入新数据的数组渲染到页面 
        comment_list:commentlist,
        comment_list2:commentlist2  
      })
      db.collection("article").doc(id).update({
        data:{
          comment_list:this.data.comment_list,
          comment_list2:this.data.comment_list2
        }
      }).then(res=>{
        console.log(res);
      })
    }
   
  },





  powerDrawer: function (e) {
    var currentStatu = e.currentTarget.dataset.statu;
    this.util(currentStatu)
  },
  util: function (currentStatu) {
    /* 动画部分 */
    // 第1步：创建动画实例   
    var animation = wx.createAnimation({
      duration: 200, //动画时长  
      timingFunction: "linear", //线性  
      delay: 0 //0则不延迟  
    });

    // 第2步：这个动画实例赋给当前的动画实例  
    this.animation = animation;

    // 第3步：执行第一组动画  
    animation.opacity(0).rotateX(-100).step();

    // 第4步：导出动画对象赋给数据对象储存  
    this.setData({
      animationData: animation.export()
    })

    // 第5步：设置定时器到指定时候后，执行第二组动画  
    setTimeout(function () {
      // 执行第二组动画  
      animation.opacity(1).rotateX(0).step();
      // 给数据对象储存的第一组动画，更替为执行完第二组动画的动画对象  
      this.setData({
        animationData: animation
      })

      //关闭  
      if (currentStatu == "close") {
        this.setData({
          showModalStatus: false
        });
      }
    }.bind(this), 200)

    // 显示  
    if (currentStatu == "open") {
      this.setData({
        showModalStatus: true
      });
    }
  },
  tijiao() {
    db.collection("huodonglist").add({
      data:{
        name:this.data.name,
        age:this.data.age,
        idcard:this.data.idcard,
        phone:this.data.phone,
        beizhu:this.data.beizhu
      }
    })
    wx.showToast({
      title: '信息提交成功',
    })
    this.setData({
      showModalStatus: !this.data.showModalStatus,
      baoming: true,
      text: "已报名"
    })
  },
  quxiao() {
    this.setData({
      showModalStatus: !this.data.showModalStatus
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    id = options.id
    this.getstdms()
    db.collection("article").doc(id).get()
      .then(res => {
        console.log(res);
        if (res.data.yanxue) {
          this.setData({
            show: true,
          })
        }
        this.setData({
          detail: res.data,
          comment_list:res.data.comment_list||[],
          comment_list2:res.data.comment_list2||[]
        })
        commentlist=this.data.detail.comment_list,
        commentlist2=this.data.detail.comment_list2
      }
      )
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    db.collection("student").doc(sid).update({
      data: {
        shoucangnum: message.shoucangnum,
        shoucangarr: message.shoucangarr
      }
    }).then(res => {
      console.log(res);
    })
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  getstdms() {
    db.collection("student").doc(sid).get().then(res => {
      console.log(res);
      message = res.data
      if(message.shoucangarr.includes(id)){
        this.setData({
          state:"#ccc",
          text1:"已收藏",
          stdms: res.data,
          avatarUrl:res.data.avater,
          nickName:res.data.name
        })
      }
      else{
        this.setData({
          state:"#bb0404",
          text1:"立即收藏",
          stdms: res.data,
          avatarUrl:res.data.avater,
          nickName:res.data.name
        })
      }
    })
  },

  shoucang() {
    if (message.shoucangarr.includes(id)) {
      this.setData({
        state: "#bb0404",
        text1: "立即收藏"
      })
      message.shoucangnum = message.shoucangnum - 1;
      message.shoucangarr = message.shoucangarr.filter(function (item) {
        return item !== id
      });
      db.collection("student").doc(sid).update({
        data: {
          shoucangnum: message.shoucangnum,
          shoucangarr: message.shoucangarr
        }
      }).then(res => {
        console.log(res);
      })
    } else {
      this.setData({
        state: "#ccc",
        text1: "已收藏"
      })
      wx.showToast({
        title: '收藏成功',
      })
      message.shoucangnum = message.shoucangnum + 1;
      message.shoucangarr.push(id)
      db.collection("student").doc(sid).update({
        data: {
          shoucangnum: message.shoucangnum,
          shoucangarr: message.shoucangarr
        }
      }).then(res => {
        console.log(res);
      })
    }
  }
  //   db.collection("student").doc(sid).update({
  //     data:{
  //       shoucangnum:this.data.stdms.shoucangnum+1,
  //       shoucangarr:this.data.stdms.shoucangarr
  //     }
  //   }).then(res=>{
  //     console.log(res);
  //   })
  // }
})